iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
0
Modern Web

用30天了解javascript系列 第 5

[用30天了解javascript]Day5.全域變數、區域變數

  • 分享至 

  • xImage
  •  

區域變數(在單一地方)

  • 在function內宣告,結束時,區域變數就消失,記憶體就會被釋放
  • 不同的funcion可宣告相同名稱
function numberTotal(num1,num2){
	let total = num1 * num2;
	console.log('total=' + total);
}
numberTotal(20,10);
console.log(total); //total is not defined

宣告區域變數在function內,只有在呼叫function時,才會被執行,當function執行完畢後,記憶體會被釋放,所以total會找不到

全域變數(在全部的地方)

  • 在function外宣告,網站關閉時全域變數就消失,比較佔記憶體空間,可能會有效能問題
  • 同一個網站不可以宣告相同變數名稱,不然會覆蓋前面的宣告
let a = 3;
let b = 4
let c = a + b;
function number(){
  let a = 2;
  let b = 3;
  let c = a+b;
  console.log('區域a =' + a); //2
  console.log('區域b =' + b); //3
  console.log('區域c =' + c); //5
}
number();
console.log('全域a =' + a); //3
console.log('全域b =' + b); //4
console.log('全域c =' + c); //7

新手常犯的錯誤會將變數都宣告全域變數,隨時隨地都可以使用,雖然方便,但是當有大量程式碼的時候,一不小心就會改到全域變數的值,導致執行結果不正確,不僅難除錯,又很耗記憶體。


上一篇
[用30天了解javascript]Day4.null、undefined
下一篇
[用30天了解javascript]Day6.提升(Hoisting)
系列文
用30天了解javascript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言